Several protocols exist in which one computer system (a "host" system) receives and processes messages from a number of other computer systems ("client" systems). For example, in applications involving the world-wide web, one server can receive and process many concurrent messages from different personal computers; in this example, the server would be the "host" system while each personal computer would be a "client" system. If a web site is very popular, or otherwise has large traffic, several servers can be arranged in parallel, and arrangements implemented for distributing work among them. Distribution of work, where a received message is allocated to a particular host computer, is referred to herein as "direction" of load. There are three common direction methodologies.
First, dispatcher methodology employs one host computer (the "dispatcher") to act as a designated point of contact for all communications between host and client. The dispatcher receives a message from a client, assigns a particular host computer, and routes that message and all subsequent messages to and from that particular host computer. If desired, the dispatcher can maintain a transaction list of sessions in-progress which matches host and client on a per session basis, such that messages for a session in-progress can be automatically routed to the same host computer. As should be apparent, however, dispatcher methodology requires all messages to pass through the dispatcher, which can create a bottleneck.
Second, round-robin methodology has been developed as a partial solution to the bottleneck problem. Round-robin methodology calls for a designated host computer to act as a single point of entry to the host system only, with initial messages being assigned (or "handed-off") to a particular host computer; unlike the dispatcher methodology, subsequent messages in a round-robin system (following initial assignment of a host computer) are transmitted directly between the assigned host computer and the client system, without going through the single point of entry. Round-robin methodology largely avoids the bottleneck problem but suffers from several shortcomings; if the single point of entry goes off-line, there may be no way for a new client to access a particular host system. Furthermore, if an assigned host computer is used by the client system to bookmark a particular host system, then load balancing problems may result, as individual clients later contact individual host computers directly. Also, if an assigned host computer goes off-line, a client may be unable to obtain continued service, e.g., it may be difficult to find the point of entry to the host system and thereby submit a new request for service. For these reasons, round-robin methodology does not provide optimal re-direction.
Finally, a hybrid round-robin methodology uses multiple parallel host computers which can each serve as a point of entry to the host system. This methodology avoids a single point of entry to a host system, and can permit entry into a host site if a single processing computer goes off-line; hybrid round-robin methodology addresses shortcomings associated with having a single point of entry only (i.e., each host computer can be used to enter a web site and can perform re-direction). However, hybrid round-robin methodology does not provide a mechanism for addressing the bookmark problem, and for providing ready address to a host system if an assigned host computer becomes unavailable.
A need exists for a host processing system that provides for service when a particular host computer suddenly becomes unavailable. Ideally, such a system should have a mechanism for also maintaining load balance among host computers during hand-off of work. Further still, a need exists for a system that maintains memory of a reference processing point for the host processing system, such that a client system can always approach a host processing system anew. Such a system should permit a client to bookmark a general site for a host processing system, such that later attempts to access the host processing system result in new re-distribution to an appropriate host processing computer. The present invention solves these needs and provides further, related advantages.